﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Collections;
using IBatisNet.DataMapper;
using TumbaloSoft.Helpers.QueryObjects;
using TumbaloSoft.Models;


namespace TumbaloSoft.Helpers
{
    public class HelperPersonaNatural
    {
        public static int insert(TumbaloSoft.Models.PersonaNatural persona)
        {
            Mapper.Instance().Insert("PersonaNaturalInsert", persona);
            return 0;
        }
        public static void update(TumbaloSoft.Models.PersonaNatural personaNatural)
        {
            Mapper.Instance().Update("PersonaNaturalUpdate", personaNatural);
        }
        public static void delete(TumbaloSoft.Models.PersonaNatural persona)
        {
            Mapper.Instance().Update("PersonaNaturalDelete", persona);
        }
        
        static public IList selectAll()
        {
            return Mapper.Instance().QueryForList("PersonaNaturalSelectAll", null);
        }
        static public int SiguienteCodigo()
        {
            return (int)Mapper.Instance().QueryForObject("PersonaNaturalSiguienteCodigo", null);

        }
        public static PersonaNatural selectById(int id)
        {
            IList personasNaturales = Mapper.Instance().QueryForList("PersonaNaturalSelect", id);
            PersonaNatural personaNatural = (PersonaNatural)(personasNaturales[0]);
            return personaNatural;
        }
        public static Boolean ExistePersona(string documento)
        {
            IList l = Mapper.Instance().QueryForList("PersonaSiExiste", documento);
            int cant = l.Count;
            if (cant == 0) return false;
            else return true;
        }
        public static IList buscar(BusquedaPersonaNatural PersonaNaturalBuscar)
        {

            return Mapper.Instance().QueryForList("PersonaNaturalBuscar", PersonaNaturalBuscar);
        }

        public static IList buscarAdministradorGeneral(BusquedaPersonaNatural PersonaNaturalBuscar)
        {

            return Mapper.Instance().QueryForList("AdministradorGeneralBuscar", PersonaNaturalBuscar);
        }

        public static int selectCountActivosAdministradorGeneral()
        {
            return (int)Mapper.Instance().QueryForObject("AdministradorGeneralSelectCountActivos", null);
        }


        public static IList buscarJefeVenta(BusquedaPersonaNatural PersonaNaturalBuscar)
        {

            return Mapper.Instance().QueryForList("JefeVentaBuscar", PersonaNaturalBuscar);
        }

        public static int selectCountActivosJefeVenta()
        {
            return (int)Mapper.Instance().QueryForObject("JefeVentaSelectCountActivos", null);
        }


        public static int selectCountActivos()
        {
            return (int)Mapper.Instance().QueryForObject("PersonaNaturalSelectCountActivos", null);
        }

        public static int Codigo(string documento)
        {
            return (int)Mapper.Instance().QueryForObject("Codigo", documento);
        }


        public static Boolean EsPersonaNatural(int id)
        {
            IList l = Mapper.Instance().QueryForList("PersonaNaturalSelect", id);
            int cant = l.Count;
            if (cant == 0) return false;
            PersonaNatural persona = (PersonaNatural)(l[0]);
            if (persona.prNombre == null) return false;
            else return true;
        }

    }
}